#ifndef DSPSIMULATOR_TAG_H
#define DSPSIMULATOR_TAG_H

/**
 * 所有类型的token以及对应的字符串形式
 */
enum class Tag {
    UN_KNOWN,  // 未知
    COMMA,  // ,
    SEMICOLON, // ;
    LPAREN, // (
    RPAREN, // )
    ID, // 标识符
    NUM, // 数字
    END, // 命令结束符
    // 寄存器关键字
    A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15,
    A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31,
    B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15,
    B16, B17, B18, B19, B20, B21, B22, B23, B24, B25, B26, B27, B28, B29, B30, B31
};

static const char *TagName[] = {
        "UN_KNOWN",
        "COMMA",
        "SEMICOLON",
        "LPAREN",
        "RPAREN",
        "ID",
        "NUM",
        "END",
        "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15",
        "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24", "A25", "A26", "A27", "A28", "A29", "A30", "A31",
        "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15",
        "B16", "B17", "B18", "B19", "B20", "B21", "B22", "B23", "B24", "B25", "B26", "B27", "B28", "B29", "B30", "B31"
};


#endif //DSPSIMULATOR_TAG_H
